package main

import (
	"fmt"
)

/*
高阶函数：
	根据go语言的数据类型特点，可以将一个函数作为另一个函数的参数。
	fun1(),fun2()
    将fun1函数作为了fun2这个函数的参数。
       fun2函数：就叫做高阶函数
           接收了一个函数作为参数的函数，高阶函数
       fun1函数： 回调函数
           作为另一个函数的参数的函数，就叫做回调函数
*/

// 设计一个函数，用于求两个整数的加减乘除运算
func main() {
	res := oper(5, 4, add)
	fmt.Println(res)

	res2 := oper(5, 4, func(a int, b int) int {
		return a - b
	})
	fmt.Println(res2)
}
func add(a, b int) int {
	return a + b
}

func oper(a, b int, fun func(int, int) int) int {
	return fun(a, b)
}
